name: Self-hosted runner (nightly-past-ci-caller)

on:
  schedule:
    # 2:17 am on each Sunday and Thursday

    - cron: "17 2 * * 0,4"
  push:
    branches:
      - run_nightly_ci*
      - run_past_ci*

jobs:
  build_nightly_ci_images:
    name: Build Nightly CI Docker Images
    if: (github.event_name == 'schedule') || ((github.event_name == 'push') && startsWith(github.ref_name, 'run_nightly_ci'))
    uses: ./.github/workflows/build-nightly-ci-docker-images.yml
    secrets: inherit

  run_nightly_ci:
    name: Nightly CI
    needs: [build_nightly_ci_images]
    uses: ./.github/workflows/self-nightly-scheduled.yml
    secrets: inherit

  run_past_ci_pytorch_1-13:
    name: PyTorch 1.13
    if: (cancelled() != true) && ((github.event_name == 'schedule') || ((github.event_name == 'push') && startsWith(github.ref_name, 'run_past_ci')))
    needs: [run_nightly_ci]
    uses: ./.github/workflows/self-past.yml
    with:
      framework: pytorch
      version: "1.13"
      sha: ${{ github.sha }}
    secrets: inherit

  run_past_ci_pytorch_1-12:
    name: PyTorch 1.12
    if: (cancelled() != true) && ((github.event_name == 'schedule') || ((github.event_name == 'push') && startsWith(github.ref_name, 'run_past_ci')))
    needs: [run_past_ci_pytorch_1-13]
    uses: ./.github/workflows/self-past.yml
    with:
      framework: pytorch
      version: "1.12"
      sha: ${{ github.sha }}
    secrets: inherit

  run_past_ci_pytorch_1-11:
    name: PyTorch 1.11
    if: (cancelled() != true) && ((github.event_name == 'schedule') || ((github.event_name == 'push') && startsWith(github.ref_name, 'run_past_ci')))
    needs: [run_past_ci_pytorch_1-12]
    uses: ./.github/workflows/self-past.yml
    with:
      framework: pytorch
      version: "1.11"
      sha: ${{ github.sha }}
    secrets: inherit

  run_past_ci_tensorflow_2-11:
    name: TensorFlow 2.11
    if: (cancelled() != true) && ((github.event_name == 'push') && startsWith(github.ref_name, 'run_past_ci'))
    needs: [run_past_ci_pytorch_1-11]
    uses: ./.github/workflows/self-past.yml
    with:
      framework: tensorflow
      version: "2.11"
      sha: ${{ github.sha }}
    secrets: inherit

  run_past_ci_tensorflow_2-10:
    name: TensorFlow 2.10
    if: (cancelled() != true) && ((github.event_name == 'push') && startsWith(github.ref_name, 'run_past_ci'))
    needs: [run_past_ci_tensorflow_2-11]
    uses: ./.github/workflows/self-past.yml
    with:
      framework: tensorflow
      version: "2.10"
      sha: ${{ github.sha }}
    secrets: inherit

  run_past_ci_tensorflow_2-9:
    name: TensorFlow 2.9
    if: (cancelled() != true) && ((github.event_name == 'push') && startsWith(github.ref_name, 'run_past_ci'))
    needs: [run_past_ci_tensorflow_2-10]
    uses: ./.github/workflows/self-past.yml
    with:
      framework: tensorflow
      version: "2.9"
      sha: ${{ github.sha }}
    secrets: inherit

  run_past_ci_tensorflow_2-8:
    name: TensorFlow 2.8
    if: (cancelled() != true) && ((github.event_name == 'push') && startsWith(github.ref_name, 'run_past_ci'))
    needs: [run_past_ci_tensorflow_2-9]
    uses: ./.github/workflows/self-past.yml
    with:
      framework: tensorflow
      version: "2.8"
      sha: ${{ github.sha }}
    secrets: inherit

  run_past_ci_tensorflow_2-7:
    name: TensorFlow 2.7
    if: (cancelled() != true) && ((github.event_name == 'push') && startsWith(github.ref_name, 'run_past_ci'))
    needs: [run_past_ci_tensorflow_2-8]
    uses: ./.github/workflows/self-past.yml
    with:
      framework: tensorflow
      version: "2.7"
      sha: ${{ github.sha }}
    secrets: inherit

  run_past_ci_tensorflow_2-6:
    name: TensorFlow 2.6
    if: (cancelled() != true) && ((github.event_name == 'push') && startsWith(github.ref_name, 'run_past_ci'))
    needs: [run_past_ci_tensorflow_2-7]
    uses: ./.github/workflows/self-past.yml
    with:
      framework: tensorflow
      version: "2.6"
      sha: ${{ github.sha }}
    secrets: inherit

  run_past_ci_tensorflow_2-5:
    name: TensorFlow 2.5
    if: (cancelled() != true) && ((github.event_name == 'push') && startsWith(github.ref_name, 'run_past_ci'))
    needs: [run_past_ci_tensorflow_2-6]
    uses: ./.github/workflows/self-past.yml
    with:
      framework: tensorflow
      version: "2.5"
      sha: ${{ github.sha }}
    secrets: inherit
